Network storage systems may be composed of multiple interconnected storage devices connected to one or more servers to increase performance in terms of storage capacity, reliability, scalability, and availability. System storage performance can be enhanced by using system management operations including management of data communication and management of data placement. Data system management has multiple aspects including storage device mapping, methods of data storage and recovery, data integrity, backup operations, and storage element utilization.
Network storage systems can store large amounts of data at least partly on the basis of inherent and simple scalability. The volume capacity can be simply increased by adding physical storage devices. However, the mere addition of hardware resources does not create the most efficient and useful storage system. Storage management techniques may be used, for example, to operationally include added storage capacity into a storage system, organize the storage for usage, distribute data in the storage, replicate data as needed, and assure data security.
Virtualization of memory is one aspect of storage management that permits allocation of storage resources according to dynamically changing requirements. Virtualization may be executed in a storage management software layer located between physical device drivers and a file system to create a virtual volume description that is not constrained to specific physical storage devices. The virtualization software describes the physical storage as a pool of resources that can be dynamically managed.
Various techniques and approaches have been attempted for virtualization. But these have suffered from various disadvantages. What is needed are virtualization techniques that improve, for example, data accessing performance, promotes space-efficient data storage, and facilitates data sharing.